Data compression and decompression system

ABSTRACT

A high speed, multistage, compressor-decompressor system for processing arbitrary bit strings by reversibly removing redundant information. Alphanumeric information is processed by Type 1 compression which involves removing patterns of contiguous bytes and replacing each removed pattern by decompression information which takes considerably less storage space, and Type 2 compression which involves removing individual redundant bytes and constructing a bit map identifying the location of the removed bytes. Numerical information is processed by a compression technique involving truncation, recursive differencing, sequence removal, packing, and then utilizing the Type 1 and Type 2 compression which are used in conjunction with alphanumeric information. The information which is to be compressed is arranged in strings of bytes and any information defining removal of redundant information from a string is kept together with the string. As a result, each string is selfdefined in the sense that it contains all information needed to decompress that string.

United States Patent De Maine et al.

[54] DATA COMPRESSION AND DECOMPRESSION SYSTEM [72] Inventors: Paul A.D. De Maine; Gordon K. Springer,

both of State College, Pa.

LAD. D e Maine, B. A Mgrron, and K. Kloss, The Solid System 11; NumericCompression The Solid System 111; Alphanumeric Compression Nat. Bureauof Standards Technical Note 413, Aug. 15,1967

[451 Apr. 11, 1972 R.W. Bemer, Data Compression System, IBM Tech. Disc.Bull. Vol. 3, No. 8, Jan. 1961 Primary Examiner-Raulfe B. ZacheAssistant Examiner-Sydney R. Chirlin Attorney-Robert S. Dunham, P. E.Henninger, Lester W. Clark, Gerald W. Griffin, Thomas F. Maran, Howard.1.

Churchill, R. Bradlee Boal, Christopher C. Dunham, Robert [5 7] ABSTRACTA high speed, multistage, compressor-decompressor system for processingarbitrary bit strings by reversibly removing redundant information.Alphanumeric information is processed by Type 1 compression whichinvolves removing patterns of contiguous bytes and replacing eachremoved pattern by decompression information which takes considerablyless storage space, and Type 2 compression which involves removingindividual redundant bytes and constructing a bit map identifying thelocation of the removed bytes. Numerical information is processed by acompression technique involving truncation, recursive differencing,sequence removal, packing, and then utilizing the Type 1 and Type 2compression which are used in conjunction with alphanumeric information.The information which is to be compressed is arranged in strings ofbytes and any information defining removal of redundant information froma string is kept together with the string. As a result, each string isself-defined in the sense that it contains all information needed todecompress that string.

25 Claims, 38 Drawing Figures SANPAKD PATENTEuIPRITIIm 1 3,656,178

SHEET mar 30 sET ALL YES REGISTERS AND F COUNTERS IS THIS TYPE 2COMPRESSION FIG. 1A

COMPUTE sAvINe RATIO AND FIND OUT WHETHER TO ADD, DELETE, OR UPDATEPCORDSI FIND ALL l2 AVAILABLE CODES.

STORE lN LEXICON ARE THERE ANY coDEs LEFT AVAILABLE FOR SUBSTITUTION FORA PATTERN ANY CODES AVAILABL SET COUNTERS R AND RM A B UPDATE COUNTERSSELECT coDE FROM U No 807 LEXICON ARRAY I P {30 RM=RM-l LDAD IRE wITHADDRESS OF MATCH 36 FROM TL (IR4) (94) m TWIN/(IRS.- E PAUL A.D. deMAINE INGER m- AY GORDON K AA 34 v LERNER DAVID 8I BEHR ATTORN E YSPAIENTEBIPII I I I972 SHEET SET UP COUNTERS AND REGISTERS FOR TYPE 2COMPRESSION SET UP COUNTERS AND REGISTERS FOR FAST MODE GET NEXT TYPE 2CODE TO SEARCH STRING FOR GET NEXT PCORD O SEARCH FOR IN STRING FIG. 1B

WAS THERE A SAVINGS GO TO POINT MARKED K SET UP COUNTERS TO ASSEMBLELEXICON GO TO POINT MARKED L ARE THERE ANY ANY MORE TYPE 2 CODES GO TOPOINT MARKED J ANY MORE PCORDS FOR THIS ENGTH TH ERE A SAVINGS RRLJII,CS4

ANY MORE TYPE 2 CODES ARE THERE ANY YES RELOAD REG. 8: IRR AND BRANCHSAVINGS SAVINGSR PATENTED PR 1 1 m2 SHEET 830F310 UN UNLN 20mm wooomkmJwQ PATENTEIJIPII I I I972 SET NDR IN SOSIIRI) ZERO. MAKE SOSIIRI)NEGATIVE USED).

SHEET OSUF 3'0 LOGICAL ADD THE LAST 4 BITS OF NUMBER AT LOCATION OIBRYY)WITH ITSELF AND THE SHIFT RESULT TO RIGHT 8 BITS, TRUNCATION WITHROUNDING STORE STORE IO LSX(IRI)/2.0 IN BWXIIRII lN BWX (IRI) 7 FIND MIN(1R4) 2'8 2 x v 234 STORE 0.0 ,E Q JQZ IN BWX (IR'I IN SUBSTRING 236 V IINCREASE SETI 220 BRYY BY 4 FIND THE MIN '98 YM (1R|I= 1R4 I DECREASE1R3 (1R4) 8 THE DUMI=IIR5-1R4I BY 4 MAX.IIR5) IN /BWX (IRI I SUBSTRING238 (6(BRYY I 222 0 200 IF SE I g DUMI B O YM(1R|)=(IR4+1R5I 61.08364 /2so 1R5=I YMIIRI )I DEc E vQI I igm I224 BRYY 8Y4 (:52 a CSI5 SHIFT6(BRYY) LOGICAL LEFT REPLACE GIBRYYI a STORE IN E6(BRYY)YM(IRI)J LOADIRS 8| /BWX(IR|) CHECKIIRI) BRYY FROM cs2 a cs I5 LOAD BRYY r 228 AND[R3 FROM SUBTRACT TRUN Csls CS2 YMIIRIIFROM 6(BRYY) O'YYIYY l IR3=IR34230 244 A BRYY=BRYY +4 2I4 INCREASE BRYY BY 4 DECREASE o I ma BY 4 so 50IF 0 FIG.

PATENTEDIPR I I I972 3. 656, 1 78 SHEET 06 (1F 30 IE H I? 5 EW TTN I IsTo II: IRI a |R5 I 2$8RIHIIRTOII$3I I IN a IR3) AND .1 ADD FOUR TO IR4I DUMIIIM) LOAD BRYY FROM LOAD I CSISIDECREASE I I FROM BRYY I I |R3 BYFOUR, I D I INCREASE IR3v8IIR4 I I BY FouRsToREIRe I w BEGIN THE FLOADme I GIIRZI I I SIGNIFICANT I R BRYY OM e( I I I E LTI 'I'BRIED IN RT IINCREASE IR4,IR5a I I E B S O I I IR6 BY4,88II I EAEH \A I2R STORE IRSIN 9(IR3).INCREASE IR3, IR5 BI BRYY BY FOUR. LOAD IRG FROM GIBRYY).DECREASE IRI BY ONE.

TRANSFER IR? BYTES FROM 9(IR2) TO 6(IR3) STORE IR6 IN DUMI. ASSEMBLE THECONDENSED SUBSTRING LOAD BRYY a I I IRIWITH IR28I9 I so I M355? RICONDENSED STRINGS II IIRS+IR4 IS N0.0F I

\BYTES (III) I W I.

LOAD IR4,IR5 8IIR7 WITH ZERO LOAD IR6 8IlR4 WITH ONE 8 GIBRY LOAD IR4POSITIVE BI IR? WITH ONE MOVE lR4-IR5 LEFT ONE BIT. INCREASE IR6 BY ONELOAD IR4 WITH IR7. SHIFT IR4-IR5 RT. ONE

ADD IR6 TO IRS LOGICAL STORE IRS IN GIBRYY).

ADD FOUR TO BRYY. SUBSTRACT FOUR FROM IR3.

PATENTEDIPIIII I972 I SNUPAKC I SHEET 070F 3O TRUNCATION MAKE IRSPOSITIVE ADD IR5 TO IRS LOAD IRI,IR3 AND BRYY FROM CS2,

I oAD IR2,|R3 a BRYY FROM cs3, (:54 a csI5:IRe, IRI,IR4 T0 IR? WITH ZEROLOAD IR? FROM GIBRYY) IF I R7-IRO MAKE IRO POSITIVE ADD IR5 TO IRG ADDIRG TO IR4 HAS IR4 OVERFLOWED YES LOAD IRB FROM IR7 IR5 WITH ZEROINCREASE B RYY BY FOUR DECR-EASE IR3 BY FOUR ITRTIEURSTRFIE INDEXIR3=NO. OF BYTES I Nos. IN suBsTRINs IR5= NO. OF CONSECUTIVEIEQUELLEILEQEFLSJ INCREASE IR5 BY ONE LOAD IRI WITH 'TFFFFFFF' cs4 aCSIS BRYY=ADDRESS l I RIDE-155W I SUBSTRING STEP (a) CONVERTED TO IINTEGERS AND I HAS IRG OVERFLOWED ADD IRS TOIR4 STORE IR4 IN IRI LOADBRYY FROM Calf) WITH ZERO THE SUM OF I ABS. INTEGERS \L L JIBE ISUBTRACT [R6 FROM GIBRYY) 8| STORE DIFF. IN IR4. LOAD BRY WITH POSITIVEIR7 IF BRY- LOAD IRS FROM GIBRYY) INCREASE IR5 BY ONE PATENTEIII-PII IIIan 3,656,178

SHEET O8BF 30 '*G a -PTQKIE hl I l mERF Bic-1m? TFE" ADD IRs To sAvE IR8IN wcD PACKING OF E 1 POSITIVE IRe INIRe I SETALL REGISTERS INTEGERS INARRAY ADD 1R0 To IR4 AND INDICATORS 9(BRYYHNTO ARRAYI I \E Y L J ISETKMZASKI AND L @EI E M s HAS No LOAD FROM LOAD IRI FROM sEouENcEs IovERFLowED IR? INCREASE [R5 BY ONE DUMI. SHIFT IRI CONDENSED I LEFT 3BITS \LN S'EEP (P I I I-o lBNYCgfiSLEOlXgR I LOAD IR8,CS6 AND BRYY BIIRIFROM I cs7 WITH ZERO CSI5 a cs2 I l4-K INSERT IN ExTRAcT FROM mEK :2 lSSOSURDLOAD R7: 9(BRYY) THE usED TO I NO. OF SIGN BITS ExTRAcT THIS I hZERO I86 I INTo IR3I ADD NO. FROM RT. I L I ONE TO IR8 Il3 l J UENC'NG,'u BsTIN CONDENSAT'ON [F 0 TRANSFER CS6 TO I AND COUNT cs7 AND STOREPROCEDURES |R3-cs6 "IT 0 IR? BY FOUR Z HAS IRs OVERFLOWED LOADIR3 BI |R2WITH CS6 BI ZERO MULTIPLY |R2 BY IRB AND STORE THE ANSWER IN |R3 SINcREAsE BRYY BY LOAD RYY a FOURDECREASE IR3 FROM IR? BY FOUR csIs a cs4LOAD IRe WITH 0 0(8RYY) H DEcREAsE IRB BY l E ONE.TRAN$FER ADD FOUR T0CS7 T0 C56 BRYY. SUBTRACT FOUR FROM 0 m3 DIvIDE cs5 BY 0 IR8.QUOT|ENT aREMAINDER K so LOAD IRI FROM STORED IR4. INcREAsE AND (WCD +4) NDR BYONE F N 0 USE MASK2 TO ExTRAcT No. OF SIGNIFICANT BITs LOAD R FROMDIBRYITIIEN OUBRYY) SUBTRACT (A COMPACT INTEGER Ims FROM 00mm IN 9(BRY)IN RIGHT III/III IHG I RUMIHI IR3 BITS OF IR2 FIG. 6B

PATENTEIIIPII I I I972 SHEET 090F130 M PAEFIN'G P T q T I gEEII/IENT? IFI MOVE REGISTERS BEING PACKED LOAD BRY,IR5 AND IRO a IRI INTO DOUBLEBRYY FROM CSIS, LEFT IRS BITS REG|STER5 C53 AND 1R6 I \L i-L J I I Wa N53'5"? ADD LOGICAL SUBTRACT BRY BYTES m I IIIEREIS E BRY FROMIRS ADDCOMPRESSED I cs4 T0 BRY I BY FOUR.SUBTRACT 'N I ONE FROM |R8 SHIFTREGISTERS IRQ 8 IRI LEFT LOGICAL(WCD+4) BITS INSERT RT. FIVE I WEIEI=I)F BITS F cs8 INTO SEGMENTS IN THE THE LEFT FIVE \DOUBLE WORD LOAD BRYFROM BRYY MOVE DOUBLE WORD IN MASK4 INTO 6(IR6) INCREASE IRS BY EIGHTYES STORE IRS-IRI IN MASK4 AND 'ee' IN CORDI LOAD me a lRl WITH ZEROSTORE 56 IN CS5 TRANSFER MASK4 TO IRS. INCREASE IRS BY EIGHT MOVE THEIR5 BYTES OF UNCOMPRESSED INFO. FROM 6(BRY) TO 9(BRYY) LOAD IR9,IR| ANDBRYY FROM csI, (:32 a CS|5.STORE IR6 IN cs4 a J l INSERT NDR AND JI INSOSHRI) LOAD IRB FROM WCD BRANCH TO BRADD EID \ CONSTRUCTED I I I I I II I I I I I T 2775 TT PAIENIEIIAPRIIIHIZ SET ALL INDICATORS ANDREGISTERS CONSTRUCT IN MASK2 THE MASK FOR EXTRACTING NS AND NOS LOAD IRE8 IR3 WITH DOUBLE WORD FROM GIBRYY) INCREASE BRYY BY EIGHT DECREASE IR7BY EIGHT EXTRACT NS FROM IR2 WITH MASK2 INTO IRS 8: NS (RT ADJUSTED)COMPUTE THE NUMBER OFBITS/ SEGMENT FROM IRQ 8 C55 IN IR4 CONSTRUCT MASKFOR EXTRACTING SEGMENTS IN SHIFT DOUBLE REGISTER IR2-IR3 LEFT LOGICAL 8.LOAD IR5 FROM CS5 MASKI I I EXTRACT NOS FROM IRE WITH MASK2 INTO LSXSHIFT IR2 IR3 LEFT LOGICAL 8 INCREASE IRI BY FOUR EXTRACT SEGMENT FROMm2 INTO IR5 SHEET ET JT M I BRY a BRYY I I CONTAIN ADDRESS OF I DOUBLEWORD I Nos: NO OF CONDENSED ESTSW LEFT-MOST I FIVE BITS OF I ERWKINEIETI FOR THE FIRST DOUBLE WORD I L9 F A R RAY YL I 555 13 THE I NUMBEROF I CONDENSED STRINGS IN IL E E LJ EXPAND SEGMENT IN IR5 TO FULL WORDAND STORE IN LSX (IRI) LOAD IR5 WITH NS AND SUBTRACT ONE STORE IR5 IN NSSHIFT IRZ-IR3 LEFT LOGICAL IR4 BITS SUBTRACT ONE FROM IRS STORE IRB INCS7 LOAD IRG AND IRI WITH NS AND ZERO EXTRACT SEGMENT FROM IR2 INTO IR5FIG. 7A

DECREASE IRS BY ONE.STORE IRG IN CS7 PATENTEDIIIR II I972 EXPAND SEGMENTIN IR5 AND STORE IN DUNIIIRI).

ADD FOUR TO IRI SHEET SAVE BRYY 8| BRY IN CS9 8s CSIOI LOAD IRS FROMBRYY 8 SUBTRACT BRY GEENTTIBE -I OF TRANSFER I OF INFORMATION I IN ARRAYDUNI T O ARRAY YY ADD IR7 a C53 TO BRYY. SUBTRACT EJE E E S ONE FROMBRYY LQE l 'i I Dm N TAT I S SUBTRACT IRs AND THE ASDRESS I ADD IRI T0BRYY OF THE BYTE IaIZBRNYCSS ON RT HAND I I ll I I EE ALL Q E I R-2.IS TR E I ADD cs3 TO R7 IN R2 NUMBER OF BYTESI RM vc e, IR2,BRY, 9,8RYY

IROTTE OF F2 7 BYTES CREATED I IE E E E J RELOAD BRYY, BRY AND |R2 FROMCS9, CSIO 8 OS I I TRANSFER IRI BYTES F ROM DUNI TO HOLE (6(BRY)) ADDIRI TO BRY THEN STORE IN BRYY LOAD IRI WITH ZERO SHIFT IR2-IR3 LEFTLOGICAL ONE SEGMENT(IR4I DECREASE IRS BY ONE LOAD IRS AND IRS FROM CS4AND LSX. LOAD IRI 8I |R2 WITH ZERO EEOINNINI; i

OF THE EXPANSION OF I CONDENSED PAIENTEIIM'R 1 1 m2 SHEET [JIR PARM lsosu I CHECK I I sos (2) CHECK (2) BWX (2) I mm) BYTES =4 LSUBSTRINEILsu BSTRING Q & SUBSTRINGTVI FIG. 6

SOS

LSX

FORMATTYPE COPAK COMPRESSOR OPTION E AND/OR F E AND/OR F USE SANPAKCONLY USE SANPAKC ONLY USE SNUPAKII) THEN SANPAKC USE SNUPAKIZ) THENSANPAKC USE SNUPAKI3I THEN SANPAKC DON'T USE SNUPAK OR SANPAKC WRITE THERESI- DENT MB IN CURR E NT LOCATION FIG. .9

REWRITE THE RE- SIDENT MB IN LOCATION CURRENT READ MB IN LOCATIONADDRESS BIT 02 OFF BIT OI OFF LOAD CURRENT UPDATE EMPTY BIT 80-OFF BITOZ-ON SET CURRENT mm FIG. 11

PATENTEDAPR 1 1 1912 SHEET 1; 0F 30 EXECUTIVE POINTERS LINK ADDRESS(BADDL BYTES) FIG. 12

moqmohm FIG. 13

BD(|) LD( I) RFILE MAIN FILE JMM) SIIEET 15UF 3O IMACH|NE-INDEPENDENTINSTRUCTION SET I LAST CODING LEVEL CONTAINING ASSEMBLY LANGUAGE L 1 1 4A 4 1 A A A [CODING LEVEL 7 I E 1 1 1 1 1 1 1E LCODING LEVEL 6 1 I I I II EODING LEVEL 5 LCODING LEVEL 4 MACROPAK CODING LEVEL 3 SERVICE MACROS[RESERVE I I ASSEMBLY LANGUAGE FIG. 14

CONTROL ROUTINE T T T SRI SR2 SR3 SRZA SR3A SRBB 1 n In FIG. 15

PATENTEDAPR 1 1 m2 EHEET 15 0F 3-0 INITIALIZE (SSTATECL) MSIGNAL=OO(80)NORMAL ENTRY 604 F 606 FOR SSEARCH INITIALJZE START SEARCH BITS 3c OFF NSCREEN 0 YES INDEX SCREEN AUXFILE SEARCH SEARCH 650 SEARCH (20) (20) (0|20) ONE TM 20 7 g? UNSUCESSFUL \sla zERo SEARCH (04) 682/ SUCCESSFUL 622620 SEARCH E .E.\L M .E E- CREATE TsMEMoRY (so) I 4o -ON M912? 2. E$9599 ZER INCREMENT JOB-LIST ITEM DISCRIPTOR A 626 POINTER l8) FIG. 16'

PATENTEDAPR 11 m2 3,656,178

SHEET 18 0F 30 686 720 COMPUTE EP 7 LENGTH IN m4, AND TOTAL SET LENGTHOF ALL me |R6+ BRY EPS IN ARRAY COMPUTE IN RI LOAD R0 TO R|5 FROM ARRAYDUMX +8 IS RI DIVISIBLE 9 SET LOAD RO TO 6 MSIGNAL X 20' Rl5 FROM THEBIT ON- ARRAY DUMX+8 |R6=|R3 70o v 692 Q INSERT TESTS FOR OVERIDECODESJF ANY ARE PRESENT BRANCH TO THE LOCATION MMATCH IN SSEARCH SETRI=A(8ADDI) 8ADDL,8|LFAST,

I BLTHAYY SUPERSCH D aAooL, aLFAsT CSCREEN 706 FIG. 18A

PATENTEUAPR 1 1 I972 TIC MMATCH N SHEET SSEARCH lSOF 30 STORE R0 TO R6IN ARRAY Cl SET IR|=LEXICON +8 SET LMOVE MASKI,O(IR6), C(IRI) l 874 20SET 5 IRI=LEXICON+4 SET R1: RIRO-, STORE R0 TO R6 IN ARRAY c|-,IR3=|R3RO LMOVE DUNI,O(IR2), OHRI) SET ONE C(LEXICON)=X'OO' LOAD R0 TOR6 FROM ARRAY c| LEXICON x'o|' SETIMSIGNAL x o BIT ON 2 8'8) ZERO SETIRIIAYY+8LTHAYY TO --H(DUN|)', TBADDNE LEXICON+4=IR|- INLEx|coN+8=|R|-Ro;

SSEARCH Y FIG. 183

Y FIG. 20A

1. Method of utilizing a digital computer system including memory andcontrol sections comprising the steps of: a. storing in the memory astring comprising a set of multibit information units; b. identifyingand storing in the memory a LEXICON table comprising Type 1 codesdefined as units which are of the same format as the stored string unitsand which do not occur in the stored string; c. searching the storedstring for the presence of a plurality of patterns of contiguous stringunits which patterns are repeated in the string, and identifying suchrepeated patterns; d. replacing each of the patterns of a plurality ofrepeated patterns identified in the preceding step by a unique Type 1code from the LEXICON table; e. storing in the memory decompressioninformation associated with the string and defining the replacementcarried out in the preceding step; and f. storing in the memory a PCORDtable containing one pattern from each plurality of identical patternswhich have been replaced by a Type 1 code.
 2. Method as in claim 1including computing and storing in the memory a savings ratio indicativeof the saving in the length of the stored string achieved throughreplacing by a Type 1 code string pattern identical to patterns storedin the PCORD table to thereby associate a savings ratio with eachpattern stored in the PCORD table.
 3. Method as in claim 2 including:defining a maximum value for the number of patterns that can be storedin the PCORD table; testing before storing a pattern in the PCORD tableif the PCORD table is full; if the PCORD table is full, testing if thesavings ratio of the pattern to be stored in the PCORD table is morefavorable than the least favorable savings ratio of the patterns alreadyin the PCORD table; and, if the answer is yes, removing the pattern withthe least favorable savings ratio from the PCORD table and storingtherein the pattern with the more favorable savings ratio.
 4. Method ofutilizing a digital computer having memory and control sections todecompress a string compressed by the method of claim 1 comprising: a.storing the compressed string an the decompression information in thememory; b. identifying from the decompression information a Type 2 codeand the pattern replaced by it; c. locating in the compressed stringType 2 codes identical to the Type 2 code identified in the precedingstep; and d. replacing each Type 2 code located in the preceding step bythe pattern identified in the identifying step.
 5. Method of utilizing adigital computer system including memory and control Sections comprisingthe steps of: a. storing in the memory a string comprising a set ofmultibit information units; b. identifying and storing in the memory aLEXICON table comprising Type 1 codes defined as units which are of thesame format as the stored string units and which do not occur in thestored string; c. storing in a PCORD table in the memory a list of PCORDpatterns each composed of a plurality of units of the same format as theunits of the stored string; d. searching the stored string for aplurality of patterns each composed of contiguous units and eachidentical to a PCORD pattern; e. identifying such patterns forreplacement by Type 1 codes; f. replacing each of the patterns of aplurality of repeated patterns identified in the preceding step by aunique Type 1 code from the LEXICON table; and g. storing in the memorydecompression information associated with the string and defining thereplacement carried out in the preceding step.
 6. Method as in claim 5including defining prior to the searching step if the stored string isto be subjected to slow mode compression or to a fast mode compression,and - if slow mode compression is defined - searching in the searchingstep for a plurality of patterns each composed of contiguous units andidentifying such patterns for replacement by Type 1 codes withoutreference to the PCORD patterns stored in the PCORD table, but - if fastmode compression is defined - searching in the searching step only forrepeating patterns identical to PCORD patterns from the PCORD table. 7.Method of utilizing a digital computer system including memory andcontrol sections comprising the steps of storing in the memory a stringcomprising a set of multibit information units; identifying and storingin the memory a LEXICON table comprising Type 1 codes defined as unitswhich are of the same format as the stored string units and which do notoccur in the stored string; searching the stored string for the presenceof a plurality of patterns of contiguous string units which patterns arerepeated in the string, and identifying such repeated patterns;replacing each of the patterns of a plurality of repeated patternsidentified in the preceding step by a unique Type 1 code from theLEXICON table; storing in the memory decompression informationassociated with the string and defining the replacement carried out inthe preceding step; including in said identifying and storing step thesubstep of identifying and storing in the LEXICON table Type 2 codesdefined as units which are of the same format as the stored string unitsand which occur in the stored string at least a preselected number oftimes, and including the additional steps of: searching the storedstring for string units identical to Type 2 codes stored in the LEXICONportion of the memory in the preceding step; constructing and storing inthe memory a bit map identifying the locations in the stored string ofunits identical to a Type 2 code and occurring at least a preselectednumber of times in the string; removing from the string the unitsidentified in the preceding step; and storing in the memorydecompression information associated with the string and comprising thebit map and one of the removed string units.
 8. Method of utilizing adigital computer system including memory and control sections comprisingthe steps of: a. storing in the memory a string comprising a set ofmultibit information units; b. identifying and storing in the memory aLEXICON table comprising Type 1 codes defined as units which are of thesame format as the stored string; units and which do not occur in thestored string; c. searching the stored string for the presence of aplurality of patterns of contiguous string units which patterns arerepeated in the string, and identifying such repeated patterns; d.replaCing each of the patterns of a plurality of repeated patternsidentified in the preceding step by a unique Type 1 code from theLEXICON table; and e. storing in the memory decompression informationassociated with the string and defining the replacement carried out inthe preceding step; f. storing in the memory a PCORD table containingpreselected Type 2 codes each of the same format as the units of thestored string; g. searching the stored string for units which areidentical to a Type 2 code and which occur in the string at least apreselected number of times; h. removing from the string unitsidentified in the preceding step; i. constructing a bit map identifyingthe locations of the removed units; and j. storing in the memorydecompression information associated with the string and comprising thebit map and one of the removed string units.
 9. Method as in claim 8including: defining prior to the step of searching the stored string forunits identical to Type 2 codes if the stored string is to be subjectedto fast mode compression or to slow mode compression; if slow modecompression is defined identifying and storing in said identifying andstoring step in the LEXICON table Type 2 codes defined as identical informat with the units of the stored string and occurring in the stringat least a preselected number of times, searching the stored string forstring units identical to a Type 2 code from the LEXICON table of thememory and occurring at least a preselected number of times in thestored string, and then proceeding to the bit map constructing stepwithout recourse to the table of Type 2 codes; but if fast modecompression is defined, then searching the stored string for unitsidentical to Type 2 codes from the PCORD table of Type 2 codes withoutrecourse to the LEXICON portion of the memory.
 10. Method of utilizing adigital computer having memory and control sections to decompress astring compressed by the method of claim 8 comprising the steps of: a.storing the compressed string and the decompression informationassociated with the string in the memory; b. identifying from thedecompression information a Type 1 code and the pattern replaced by it;c. locating in the compressed string Type 1 codes identical to the Type1 code identified in the preceding step; d. replacing each Type 1 codelocated in the preceding step by the pattern identified in step b; e.identifying from the decompression information a bit map and one of thestring units removed in conjunction with constructing the bit map; andf. storing the removed string unit in the places in the stringidentified by the bit map and expanding the string accordingly. 11.Method of utilizing a digital computer system including memory andcontrol sections comprising the steps of: a. storing in the memory astring comprising a set of multibit information units; b. storing in aPCORD table in the memory at least one PCORD pattern composed of aplurality of units which are of the same format as the units of thestored string; c. searching the stored string for the presence of aplurality of patterns each composed of contiguous string units and eachidentical to a PCORD pattern, and identifying such string patterns ifany are found; and d. replacing each of the string patterns identifiedin the preceding step by a Type 1 code defined as a unit which is of thesame format as the string units but which does not occur in the storedstring.
 12. Method of utilizing a digital computer having memory andcontrol sections to decompress a string compressed by the method ofclaim 11 comprising the steps of: a. identifying a Type 1 code which hasreplaced a pattern and the pattern replaced by the code; b. replacingeach Type 1 code identical to the identified code and occurring in thestriNg by the pattern identified in the preceding step; and c. expandingthe string by a number of units equal to the difference between thenumber of units in the replaced patterns and the number of Type 1 codeswhich have been replaced by patterns.
 13. Method of utilizing a digitalcomputer system including memory and control sections comprising thesteps of: a. storing in the memory a string comprising a set of multibitinformation units; b. identifying and storing in a LEXICON table in thememory Type 2 codes defined as units which are of the same format as thestored string units and which occur in the stored string at least apreselected number of times; c. searching the stored string for unitsidentical to a Type 2 code and identifying the locations in the stringof such identical units; d. constructing and storing in the memory a bitmap identifying the locations in the stored string of units identifiedin the preceding step; e. removing from the string the identified units;and f. storing in the memory decompression information associated withthe string and comprising the bit map and one of the removed stringunits.
 14. Method of utilizing a digital computer having memory andcontrol sections to decompress a string compressed by the method ofclaim 13 comprising the steps of: a. storing the compressed string andthe decompression information in the memory; b. identifying from thedecompression information a bit map and a string unit removed inconjunction with constructing the bit map; and c. inserting the stringunit identified in the preceding step in the locations in the stringidentified by the bit map and expanding the string accordingly. 15.Method of utilizing a computer system including memory and controlsections comprising the steps of: a. storing in the memory a stringcomposed of a number of multibit information units; b. storing in aPCORD table in the memory Type 2 codes defined as units which are of thesame format as the stored string units; c. searching the stored stringfor units which are identical to a Type 2 code from the PCORD table andwhich occur at least a pre-selected number of times, and identifyingsuch units if any are found; d. constructing a bit map identifying thelocations in the stored string of units identified in the precedingstep; and e. removing from the string the identified units and storingin the memory together with the string the bit map and one of theremoved string units.
 16. Method of utilizing a digital computer havingbyte-oriented memory and control sections to compress informationsupplied in the form of a string comprising a set of bytes ofinformation bits, comprising the steps of: a. using the value of eachbyte of the string to address a 256byte table in which each byte addresscorresponds to a unique one of the 256 possible bit configurations of abyte and each byte address contains a count of the number of times thebyte address has been addressed; b. storing an indication of the addressof each byte address of the 256 byte table that has not been addressedin the course of step (a) in a LEXICON table to compile thereby a set ofType 1 codes which are bytes that do not occur in the string; c.detecting the occurrence in the string of a group of non-overlappingpatterns, if any, of R contiguous bytes (R is an integer greater than 1)which patterns are identical with each other; d. replacing each of thepatterns detected in the course of step c. with an identical Type 1 codeselected from available Type 1 codes in the LEXICON table andcompressing the string to eliminate the space vacated because of thedifference in length between each such replaced pattern of R bytes andthe one byte Type 1 code replacing it; e. associating with the stringdecompression information comprising the Type 1 code used in the courseof step d and one of the replaced patterns of R bytes; f. changing thevalue of R and repeating steps c through e for as long as both i thecombined length of the Type 1 codes used as pattern replacements and thedecompression information is less than the combined length of thereplaced patterns and ii. previously unused Type 1 codes are availablein the LEXICON table; and g. storing a pattern from each group ofpatterns of R bytes which has been deleted from the string in a PCORDtable.
 17. Method as in claim 16 including storing a pattern from eachgroup of patterns of R bytes which has been deleted from the string in aPCORD TABLE; associating with each pattern in the PCORD table a savingsratio indicative of the degree of compression of the string resultingfrom the deletion of said pattern from the string.
 18. Method as inclaim 17 including: limiting the capacity of the PCORD table; checkingwhether the PCORD table is full when an attempt is made to includetherein a new pattern; and, in case the PCORD table is full, storing thenew pattern in the PCORD table and deleting from the PCORD table thepattern having the lowest associated savings ratio, but only if saidlowest savings ratio is lower than the savings ratio of the new pattern.19. Method of utilizing a digital computer having memory and controlsections to decompress a string compressed by the method of claim 16comprising the steps of: a. storing the compressed string and thedecompression information in the memory; b. identifying from thedecompression information a Type 1 code and the pattern of R bytesreplaced by it; c. locating in the compressed string Type 1 codesidentical to the Type 1 code identified in the preceding step; d.replacing each Type 1 code located in the preceding step by the patternof R contiguous bytes identified in step b; and e. expanding the stringby a number of bytes equal to the difference between the number of bytesof the patterns replacing the Type 1 codes and the number of replacedType 1 codes.
 20. Method of utilizing a digital computer having memoryand control sections to compress numeric information supplied in theform of a first string comprising a set of words A, B, C, D, E. . . . ,each word containing a number, comprising the steps of: a. recursivelydifferencing by i. adding the absolute value of the contents of thewords of the first string to obtain a first sum; ii. generating from thefirst string a second string having the same number of words, each wordexcept the first having a value equal to the difference between thecorrespondingly located word of the first string and the next precedingword of the first string, whereby the second string comprises words A,A-B, B-C, C-D, D-E, . . . , and adding the absolute values of the wordsof the second string to obtain a second sum; iii. comparing themagnitudes of the first and the second sums and, continuing to step (b)if the first sum is less than the second sum, but continuing to substep(iv) if the magnitude of the first sum is greater than or equal to themagnitude of the second sum; iv. generating from the second stringgenerated in substep (ii) a third string in the same manner as insubstep (ii), whereby the third string comprises words A, A-(A-B),(A-B)-(B-C), (B-C)-(C-D), (C-D)-(D-E), ... , and repeating substeps iand ii by considering each newly generated string as a second string andconsidering the previously generated string as a first string; b.detecting sequences of identical words; c. determining if thereplacement of such sequences by defined decompression information wouldresult in saving in string length and proceeding to step (d) if savingis indicated but proceeding to step (e) if no saving is indicated; d.deleting each detected sequence of identical wordS and associating withthe string decompression information comprising the value of the deletedword, the number of deleted words and the address in the string prior todeletion at which the deleted sequence started, and compressing thestring to take up the space vacated by the deleted words; and e. packingthe words of the string into double words, each double word having a setof bits designating the total number of and a set of bits storing valuesof words packed in the double word, each word occupying a fixed numberof bit positions, said fixed number determined by the number ofsignificant bits of the highest value word packed in the double word.21. Method as in claim 20 including converting floating point numberscontained in the words A, B, C, D, E, . . . , into integer numbers by alogical right shift truncation process.
 22. Method as in claim 21including: placing each integer number in the string into a four byteword; searching the string to find a minimum and maximum value of thewords; storing said maximum and minimum values; determining the medianvalue by dividing the sum of the minimum and maximum values by 2;recording said median value; subtracting the recorded median value fromeach word in the string; associating with the string decompressioninformation defining the above steps; and storing the decompressioninformation.
 23. Method as in claim 21 including: providing a value LSXindicating the degree of accuracy at which the information stored in thestring is to be maintained; dividing LSX by 2 and storing the result;finding the minimum value of the words in the string; subtracting fromeach word of the string the minimum value and dividing the difference bythe value LSX over 2; and rounding by removing all digits to the rightof the decimal point in the words leaving only the digits to the left ofthe decimal point.
 24. Method as in claim 21 including: locating in thestring composed of integer numbers each contained in a word any patternsof words which patterns are composed of a plurality of contiguous wordsidentical to each other; replacing each such pattern by two new wordsone of which is a count of the number of the words repeated in thepattern and the other one of which is a copy of the word which isrepeated in the pattern, and associating with the string a third newword indicating the location in the string of the pattern which isreplaced by said two new words.
 25. Method of utilizing a digitalcomputer having memory and control sections to decompress stringscompressed by the method of claim 20 comprising the steps of: a. storingin the memory the packed string and its decompression information; b.unpacking the packed string double words by reference to the set of bitsdesignating the total number of words packed in the double words and tothe set of bits storing the values of words to generate unpacked words;c. if sequences of words were deleted in the course of compressing thestring, utilizing the decompression information to replace in the stringthe deleted words; and d. if second or subsequent string were generatedduring compression, carrying out the reverse of the second andsubsequent string generating step to regenerate the original string ofwords A, B, C, D, E, . . . .